package com.property.cleaning.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.property.cleaning.common.Result;
import com.property.cleaning.entity.Area;

import java.util.List;

/**
 * 区域服务接口
 * 
 * @author Property Cleaning System
 */
public interface AreaService {

    /**
     * 创建区域
     */
    Result<Area> createArea(Area area);

    /**
     * 更新区域信息
     */
    Result<Area> updateArea(Area area);

    /**
     * 删除区域
     */
    Result<Void> deleteArea(Long areaId);

    /**
     * 根据ID获取区域信息
     */
    Result<Area> getAreaById(Long areaId);

    /**
     * 分页查询区域列表
     */
    Result<IPage<Area>> getAreaPage(Page<Area> page, String keyword);

    /**
     * 获取区域树形结构
     */
    Result<List<Area>> getAreaTree();

    /**
     * 获取子区域列表
     */
    Result<List<Area>> getChildrenAreas(Long parentId);

    /**
     * 获取所有顶级区域
     */
    Result<List<Area>> getRootAreas();

    /**
     * 设置区域负责人
     */
    Result<Void> setAreaManager(Long areaId, Long managerId);
}